//
//  KYBaseController.m
//  KYKJPackDemo
//
//  Created by Jordan zhou on 2017/9/28.
//  Copyright © 2017年 ???. All rights reserved.
//

#import "KYBaseController.h"

@interface KYBaseController ()

@end

@implementation KYBaseController

#pragma mark - 懒加载
- (NSMutableArray *)dataArr
{
    if (_dataArr == nil) {
        _dataArr = [NSMutableArray array];
    }
    return _dataArr;
}

- (UITableView *)tableView
{
    if (_tableView == nil) {
        _tableView = [[UITableView alloc] init];
        _tableView.delegate = self;
        _tableView.dataSource = self;
        _tableView.tableFooterView = [[UIView alloc] init];
        _tableView.rowHeight = 60;
        _tableView.backgroundColor = [UIColor whiteColor];
        _tableView.contentInset = UIEdgeInsetsMake(10, 0, 0, 0);
        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    }
    return _tableView;
}


#pragma mark - 集成刷新控件
- (void)setUpRefreshView
{
//    __unsafe_unretained UITableView *tableView = self.tableView;
//    __unsafe_unretained typeof(self) selfVc = self;
    
//    // 下拉刷新
//    tableView.mj_header= [MJRefreshNormalHeader headerWithRefreshingBlock:^{
//        // 加载新的数据
//        [selfVc loadNewData];
//        // 模拟延迟加载数据（实际加载数据，可以移除这段gcd代码）
//        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//            // 结束刷新
//            [tableView.mj_header endRefreshing];
//        });
//    }];
//    
//    // 设置自动切换透明度(在导航栏下面自动隐藏)
//    tableView.mj_header.automaticallyChangeAlpha = YES;
//    
//    // 上拉刷新
//    tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
//        // 加载之前的数据
//        [selfVc loadMoreData];
//        // 模拟延迟加载数据（实际加载数据，可以移除这段gcd代码）
//        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//            // 结束刷新
//            [tableView.mj_footer endRefreshing];
//        });
//    }];
}

#pragma mark - 下拉刷新数据
- (void)loadNewData
{
    
}

#pragma mark - 上拉加载更多
- (void)loadMoreData
{
    
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    // 0.设置背景色
    self.view.backgroundColor = [UIColor whiteColor];
    
    // 1.添加手势
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapView)];
    [self.view addGestureRecognizer:tap];
    
    // 2.设置导航栏阴影
    //    [self setNavBarShadow];
}

/**
 *  设置导航栏阴影
 */
- (void)setNavBarShadow
{
    if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){
        
        // 圆角/切角
        self.navigationController.navigationBar.layer.masksToBounds = NO;
        // 设置阴影的高度
        self.navigationController.navigationBar.layer.shadowOffset = CGSizeMake(0, 4);
        // 设置透明度
        self.navigationController.navigationBar.layer.shadowOpacity = 0.2;
        self.navigationController.navigationBar.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.navigationController.navigationBar.bounds].CGPath;
        self.navigationController.navigationBar.layer.shadowColor = [UIColor lightGrayColor].CGColor;
    }
}

#pragma mark - 数据源方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.dataArr.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *ID = @"baseCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
    }
    return cell;
}

#pragma mark - 代理方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

#pragma mark - 消失退出第一响应者
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    
    [self.view endEditing:YES];
}

#pragma mark - 滚动退出第一响应者
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    [self.view endEditing:YES];
}

#pragma mark - 触摸退出第一响应者
- (void)tapView
{
    [self.view endEditing:YES];
}
@end
